package pl.edu.pk.psb.assembler;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import pl.edu.pk.psb.bc.bo.RodzajPolaczeniaBo;
import pl.edu.pk.psb.bc.ds.TrasaDs;
import pl.edu.pk.psb.bc.dto.PolaczenieDto;
import pl.edu.pk.psb.command.PolaczenieCommand;
import pl.edu.pk.psb.command.TrasaCommand;

@Component
public class PolaczenieCommandAssembler {

	@Autowired
	RodzajPolaczeniaBo polaczenieBo;

	@Autowired
	TrasaCommandAssembler trasaCommandAssembler;

	public PolaczenieDto konwertuj(PolaczenieCommand cmd) {
		PolaczenieDto dto = new PolaczenieDto();
		dto.setNazwa(cmd.getNazwa());
		dto.setId(cmd.getId());
		dto.setDniKursowania(cmd.getDniKursowania());
		dto.setListaPrzystankowNaTrasie(trasaCommandAssembler
				.konwertujListe(cmd.getListaPrzystankow()));
		dto.setRodzajTransportu(polaczenieBo.pobierzRodzajPolaczenia(cmd
				.getTyp()));
		return dto;
	}

	public PolaczenieCommand konwertuj(PolaczenieDto dto) {
		PolaczenieCommand cmd = new PolaczenieCommand();
		cmd.setNazwa(dto.getNazwa());
		cmd.setListaPrzystankow(trasaCommandAssembler.konwertujListeDto(dto
				.getListaPrzystankowNaTrasie()));
		cmd.setTyp(dto.getRodzajTransportu().getId());
		cmd.setDniKursowania(dto.getDniKursowania());
		return cmd;
	}
}
